1. Field of the Invention
The invention relates generally to the field of digital data processing systems.
2. Description of the Prior Art
A typical digital data processing system includes three basic elements, namely a processor element, a memory element, and an input/output element. The memory element stores information in addressable storage locations. This information includes both data and instructions for processing the data. The processor element includes one or more digital data processing units, or "processors", each of which causes information to be transferred, or fetched, to it from the memory element, interprets the incoming information as either instructions or data, and processes the data in accordance with the instructions. The results are then stored in addressed locations in the memory element.
The input/output element also communicates with the memory element in order to transfer information into the system and to obtain the processed data from it. Units comprising the input/output element normally operate in accordance with control information supplied to it by the processor element. The control information defines the operation to be performed by the input/output unit. At least one class of operations performed by an input/output unit is the transfer of user information, that is, information used by a user program, between the input/output unit and the memory element. Typical units comprising the input/output element include, for example, printers, teletypewriters, and video display terminals, and may also include secondary information storage devices such as disk or tape storage units.
In addition to functioning as input/output devices, disk storage units and, sometimes, tape storage units may also function as part of the memory element. In particular, a memory element typically includes a main memory, whose contents are accessible to the processor relatively quickly but which is generally relatively high-cost storage. Modern main memories are typically implemented using MOS or bipolar semiconductor technology and may provide on the order of a fraction of a megabyte to several tens of megabytes of storage.
A major bottleneck in processing of data by a processor is in the transfer of the instructions and data to be processed to the processor and the transfer of the processed data to other portions in the system. Transfers between the processor and the memory element are typically of data and instructions, and transfers between the processor and input/output element are typically of control information for controlling the operation of the input/output element, although the processor may also transfer data with some types of input/output units. A processor in a digital data processing system includes an interface circuit for transferring information with these units.
A processor also typically comprises several functional portions, including a cache memory for storing immediately used data and/or instructions, data path circuits for performing primitive arithmetic and logic operations to process the instructions, and control circuits for interpreting the instructions, enabling the operands, or data to be processed, to be obtained, enabling the data path to perform a series of operations to enable the operation identified by an instruction to be performed, and enabling the processed data to be stored. The transfer of information among the various internal functional portions of the processor is quite complicated, particularly when the processor includes a cache memory and supports virtual processing, and thus must provide virtual to physical address translation.